//#include<iostream>
//using namespace std;
//void maxLeft(int* h, int n, int* left) {
//	left[1] = 1;
//	for (int a = 2; a <= n; a++) {
//		left[a] = 1;
//		for (int b = 1; b <= a - 1; b++) {
//			if (h[b] < h[a] && left[a] < left[b] + 1)
//				left[a] = left[b] + 1;
//		}
//	}
//}
//void maxRight(int* h, int n, int* right) {
//	right[n] = 1;
//	for (int a = n - 1; a >= 1; a--) {
//		right[a] = 1;
//		for (int b = n; b >= a + 1; b--) {
//			if (h[b] < h[a] && right[a] < right[b] + 1)
//				right[a] = right[b] + 1;
//		}
//	}
//}
//int main() {
//	int n;
//	cin >> n;
//	int* h = (int*)calloc(n + 1, sizeof(int));
//	for (int i = 1; i <= n; i++)
//		cin >> h[i];
//	int* top = (int*)calloc(n + 1, sizeof(int));
//	int* left = (int*)calloc(n + 1, sizeof(int));
//	int* right = (int*)calloc(n + 1, sizeof(int));
//	int max = 0;
//	maxLeft(h, n, left);
//	maxRight(h, n, right);
//	for (int i = 1; i <= n; i++) {
//		if (i == n)
//			top[i] = left[i];
//		else
//			top[i] = left[i] + right[i] - 1;
//		if (max < top[i])
//			max = top[i];
//	}
//	cout << n - max << endl;
//	return 0;
//}